<?php
declare (strict_types = 1);

namespace app\adminapi\controller;

use think\Request;

class Category
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        //
        try{
            $name = \request()->get('name');
            # 默认第一页、查询10条
            $limit = \request()->get('limit',10);
            $page = \request()->get('page',1);
            if (!is_numeric($limit) || !is_numeric($page)) {
                abort(2001,'参数错误');# 手动抛出异常
            }
            // when 当品牌名称传递的时候、添加查询条件
            // 关联查询品牌对应分类
            // join方法
            $data = \app\common\model\Category::when($name,function ($query) use($name) {
                $query->where('cate_name','like',$name.'%');
            })->with('brand')->paginate([
                'list_rows' => $limit,
                'page' => $page
            ])->toArray();
//            # 我想要的结果
//            $data['data'][0]['brand_name'] = '华为,小米,apple';
//            方法一：
//            foreach ($data['data'] as &$value) {
//                $brand_name = '';
//                foreach ($value['brand'] as $item) {
//                    $brand_name  = $brand_name.','.$item['name'];
//                }
//                $value['brand_name'] = ltrim($brand_name,',');
//                # 销毁brand数组
//                unset($value['brand']);
//            }
            # 方法二
            foreach ($data['data'] as &$value) {
                $brand_name = '';
                foreach ($value['brand'] as $item) {
                    $brand_name  = $brand_name.','.$item['name'];
                }
                $brand_name = implode(array_column($value['brand'],'name',NULL),',');
                $value['brand_name'] = $brand_name;
                # 销毁brand数组
                unset($value['brand']);
            }

            return  success(['data' => $data]);
        }catch(HttpException $exception){
            return  fail(2002,$exception->getMessage());
        }
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}
